// 公告的业务逻辑

// 配置基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'

// 封装轻提示
function showToast(msg) {
  // 把提示标签结构获取过来
  const myToast = document.querySelector('.my-toast')
  // 实例化toast
  const dialog = new bootstrap.Toast(myToast)
  // 修改提示内容
  document.querySelector('.toast-body').innerHTML = msg
  // 显示轻提示
  dialog.show()
}


// 页面访问控制（页面鉴权）
function checkLogin() {
  // 判断用户是否有访问权限？通过token确定 登录就有token，没有登录就没有
  // 没有token则跳转页面去登录
  const token = localStorage.getItem('token')
  if (!token) {
    setTimeout(() => {
      location.href = 'login.html'
    }, 2000)
  }
}

// 退出登录
function logout() {
  const logout = document.querySelector('#logout')
  logout.addEventListener('click', function () {
    // 清空用户名
    localStorage.removeItem('user')
    // 清空token
    localStorage.removeItem('token')
    // 页面跳转
    setTimeout(() => {
      location.href = 'login.html'
    }, 1000)
  })
}


// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 获取token
  const token = localStorage.getItem('token')
  if (token) {
    config.headers['Authorization'] = token
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// // 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  // console.log('response:', response.data);
  return response.data;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 拿到token的错误信息
  // 如果token失效了，就重新获取
  // console.dir(error);

  if (error.response.status === 401) {
    // 清除用户名和token
    localStorage.removeItem('user')
    localStorage.removeItem('token')
    // 跳转到登录页
    setTimeout(() => {
      location.href = 'login.html'
    }, 1000);
  }
  // 对响应错误做点什么
  return Promise.reject(error);
});